package com.cykj.order.service;

/**
 * @BelongsProject: Cykj-Order-System
 * @BelongsPackage: com.cykj.order.service
 * @Author: cwx
 * @CreateTime: 2025/9/4 12:06
 * @Description:
 * @Version: 1.0
 */

import com.cykj.order.domain.dto.AlipayPageReqDTO;
import com.cykj.order.domain.dto.OrderCreateReqDTO;

/**
 * 订单业务服务（区别于基础CRUD服务）
 */
public interface OrderBusinessService {

    /**
     * 创建订单（含插入订单表、明细表，删除购物车，发送延迟消息）
     * @return 订单ID
     */
    Long createOrder(OrderCreateReqDTO reqDTO);

    /**
     * 生成支付宝沙箱支付页面（返回HTML表单）
     */
    String generateAlipayPage(AlipayPageReqDTO reqDTO);

    /**
     * 处理支付宝支付回调（更新订单状态）
     * @param paramMap 支付宝回调参数
     * @return 支付宝要求的"success"或"fail"
     */
    String handleAlipayNotify(java.util.Map<String, String> paramMap);

    /**
     * 超时取消订单（RocketMQ消费者调用）
     */
    void cancelOrderByTimeout(Long orderId);
}